home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / hardware-part1 / 2986 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.4 KB

  1. Path: hpmde1.emw.ericsson.se!emwnie
  2. From: emwnie@emw.ericsson.se (Linus Nielsen)
  3. Newsgroups: comp.sys.amiga.hardware
  4. Subject: Re: Technical DRAM Question.
  5. Date: 30 Jan 1996 06:42:38 GMT
  6. Organization: Ericsson
  7. Message-ID: <4ekeku$17d@erinews.ericsson.se>
  8. References: <Pine.BSD/.3.91.960128174644.5065A-100000@ecf2.puc.edu>
  9. NNTP-Posting-Host: hpmde1.emw.ericsson.se
  10. X-Newsreader: TIN [version 1.2 PL2]
  11.  
  12. :=Rob=: (rldickin@puc.edu) wrote:
  13. : My A500s internal memory consists of 16 32k chips.  Each chip has 9 
  14. : address lines and one data line.  The data lines from each of the 16 chips 
  15. : all combine into the 16-bit data bus.  The 9 address lines function as 
  16. : both the upper 9 bits and lower 9 bits of the 18-bit CHIP memory 
  17. : address.  There are three other lines named CAS, RAS, and WE.  What I 
  18. : need to know is what the function of each of these other lines are.
  19.  
  20. The DRAM memory cells are organized in a matrix where you can select a cell by
  21. using a row and a column address. The DRAM's in Amiga use 9-bit row and column
  22. addresses. So, the matrix is 512 by 512 words = 262144 = 512K bytes.
  23.  
  24. CAS and RAS stand for Column Address Strobe and Row Address Strobe. These
  25. strobes select the address. How they are used differ somewhat between different
  26. DRAMS, but in general, it works the same way.
  27.  
  28. WE stands for Write Enable. It is driven low when the CPU wants to write to the
  29. DRAM, and high when it wants to read.
  30.  
  31. When the DRAM controller wants to access the DRAM it does something like this:
  32.  
  33. 1) Set WE high or low depending on whether it is a read or write access.
  34. 2) Output the row address on the address lines to the DRAM.
  35. 3) Assert the RAS (Row Address Strobe).
  36. 4) Output the column address on the address lines to the DRAM.
  37. 5) Assert the CAS (Column Address Strobe).
  38. 6) Read or write to the data bus.
  39. 7) Release the RAS and the CAS when ready.
  40.  
  41. : Also, the Agnus has the lines CASU, CASL, RAS0, and RAS1.  One of the CAS 
  42. : lines feed to the CAS on the memory and one of the RAS lines feed to the 
  43. : memory.  What do these lines do?
  44.  
  45. UCAS and LCAS are used to select the upper or lower bytes of the memory. The
  46. CHIP mem is divided into two blocks, one for the upper and one for the lower byte.
  47. RAS0 is used to select the CHIP memory on board your Amiga, and RAS1 is used for
  48. the expansion memory in the expansion memory socket underneath your Amiga. If
  49. you have 1M och CHIP RAM, it is used to select the upper half of CHIP mem.
  50.  
  51. : How does memory refreshing occur?
  52.  
  53. On most DRAM's, the refreshing is done on a row-by-row basis. It is done by 
  54. asserting the RAS and CAS strobes in the opposite order, while the DRAM itself
  55. selects the row address, something like this:
  56.  
  57. 1) Assert CAS.
  58. 2) Assert RAS.
  59. 3) Wait a while.
  60. 4) Release RAS and CAS.
  61.  
  62. This is done about every 4ms, depending on the refresh demands of the DRAM.
  63.  
  64. It can also be done in a way called "hidden refresh". This means that the 
  65. refresh can take place by toggling the RAS between 5) and 7) in the read
  66. access example above.
  67.  
  68. There is also a third way, called "RAS-only" refresh. Then the DRAM controller
  69. selects the row address:
  70.  
  71. 1) Output the row address.
  72. 2) Assert RAS.
  73. 3) Wait a while.
  74. 4) Release RAS.
  75.  
  76.  
  77. Well, that was a brief explanation on how it works. There is of course more
  78. to it than this, like burst accesses and Read-Modify-Write cycles, but at least
  79. you get the general idea.
  80.  
  81. : Any info is much appreciated, :=Rob=:
  82.  
  83. Hope you appreciated this, then. :-)
  84.  
  85. /Linus
  86.  
  87.